﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using MakeIT.MiraPark.Negocios;

namespace MiraPark
{
    public partial class FormSetupImpressora : Form
    {
        public FormSetupImpressora()
        {
            InitializeComponent();
        }
        private void FormFormVerificacaoDiaria_Load(object sender, EventArgs e)
        {
            this.textBoxProduto.Text = ModelBO.getParametro(ParametroVO.daruma.Produto);
            this.textBoxPorta.Text = ModelBO.getParametro(ParametroVO.daruma.COM);
            this.textBoxVelocidade.Text = ModelBO.getParametro(ParametroVO.daruma.Velocidade);
            this.textBoxTermica.Text = ModelBO.getParametro(ParametroVO.daruma.Termica);
        }

        private void buttonExecutar_Click(object sender, EventArgs e)
        {
            bool erro = false;

            StringBuilder temp = new StringBuilder();

            temp.AppendLine("Aplicando configurações...");
            temp.AppendLine("--------------------------------------------------------------");

            temp.AppendLine("\tDefinindo produto como: " + this.textBoxProduto.Text);
            DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno = DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.eDefinirProduto_Daruma(this.textBoxProduto.Text);
            if (DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno != 1)
            {
                erro = true;
                temp.AppendLine("\t\tErro: código " + DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno);
            }

            temp.AppendLine("\tAssociando porta da impressora para: " + this.textBoxPorta.Text);
            DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno = DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.regPortaComunicacao_DUAL_DarumaFramework(this.textBoxPorta.Text);
            if (DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno != 1)
            {
                erro = true;
                temp.AppendLine("\t\tErro: código " + DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno);
            }
            DateTime espera = DateTime.Now.AddSeconds(5);
            while (espera <= DateTime.Now) ;


            temp.AppendLine("\tConfigurando impressora como térmica: " + this.textBoxTermica.Text);
            DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno = DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.regTermica_DUAL_DarumaFramework(this.textBoxTermica.Text);
            if (DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno != 1)
            {
                erro = true;
                temp.AppendLine("\t\tErro: código " + DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno);
            }
            espera = DateTime.Now.AddSeconds(5);
            while (espera <= DateTime.Now) ;

            temp.AppendLine("\tDefinindo velocidade da impressora para: " + this.textBoxVelocidade.Text);
            DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno = DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.regVelocidade_DUAL_DarumaFramework(this.textBoxVelocidade.Text);
            if (DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno != 1)
            {
                erro = true;
                temp.AppendLine("\t\tErro: código " + DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno);
            }

            if (!erro)
            {
                temp.AppendLine("");
                temp.AppendLine("***Salvando parâmetros da impressora");
                ModelBO.setParametro(ParametroVO.CreateParametroVO(ParametroVO.daruma.Produto, this.textBoxProduto.Text));
                ModelBO.setParametro(ParametroVO.CreateParametroVO(ParametroVO.daruma.COM,this.textBoxPorta.Text));
                ModelBO.setParametro(ParametroVO.CreateParametroVO(ParametroVO.daruma.Velocidade,this.textBoxVelocidade.Text));
                ModelBO.setParametro(ParametroVO.CreateParametroVO(ParametroVO.daruma.Termica,this.textBoxTermica.Text));
                temp.AppendLine("***Parâmetros da impressora salvos");
            }
            this.textBoxResult.Text = temp.ToString();

        }

    }
}
